package benny_driving_ser.util;
/**
 * MD5加密算法
 */
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

//import sun.misc.BASE64Encoder;

public class MD5Util {
	
//	/** 
//     * 获得MD5加密密码的方法 
//     */  
//	 public static String getMD5ofStr(String origString) {  
//	        String origMD5 = null;  
//	        try {  
//	            MessageDigest md5 = MessageDigest.getInstance("MD5");  
//	            byte[] result = md5.digest(origString.getBytes());  
//	            origMD5 = byteArray2HexStr(result);  
//	        } catch (Exception e) {  
//	            e.printStackTrace();  
//	        }  
//	        return origMD5;  
//	    } 
//	 
//	   /** 
//	     * 处理字节数组得到MD5密码的方法 
//	     */  
//	    private static String byteArray2HexStr(byte[] bs) {  
//	        StringBuffer sb = new StringBuffer();  
//	        for (byte b : bs) {  
//	            sb.append(byte2HexStr(b));  
//	        }  
//	        return sb.toString();  
//	    }  
//	
//	    /** 
//	     * 字节标准移位转十六进制方法 
//	     */  
//	    private static String byte2HexStr(byte b) {  
//	        String hexStr = null;  
//	        int n = b;  
//	        if (n < 0) {  
//	            //若需要自定义加密,请修改这个移位算法即可  
//	            n = b & 0x7F + 128;  
//	        }  
//	        hexStr = Integer.toHexString(n / 16) + Integer.toHexString(n % 16);  
//	        return hexStr.toUpperCase();  
//	    } 
	    
	public static String md5(String plainText ) { 
		StringBuffer buf = new StringBuffer("");
		try { 
		MessageDigest md = MessageDigest.getInstance("MD5"); 
		md.update(plainText.getBytes()); 
		byte b[] = md.digest(); 
		int i; 
		for (int index = 0; index < b.length; index++) { 
		i = b[index]; 
		if(i<0) i+= 256; 
		if(i<16) 
		buf.append("0"); 
		buf.append(Integer.toHexString(i)); 
		} 

		//System.out.println("result: " + buf.toString());//32位的加密 
		//System.out.println("result: " + buf.toString().substring(8,24));//16位的加密 

		} catch (NoSuchAlgorithmException e) { 
		e.printStackTrace(); 
		} 
		return buf.toString().substring(8,24);
	} 

	
	public static void main(String[] args) {
		System.out.println(md5("nujian"));
		//c220c626c
		//776b236bc20cab53
	}
}

